home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-9.10-netbook-remix-PL.iso / casper / filesystem.squashfs / usr / share / hplip / base / maint.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2009-10-28  |  38KB  |  1,452 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from g import *
  5. from codes import *
  6. import status
  7. import pml
  8. from prnt import pcl, ldl, colorcal
  9.  
  10. def AlignType1(dev, loadpaper_ui):
  11.     ok = loadpaper_ui()
  12.     if ok:
  13.         dev.writeEmbeddedPML(pml.OID_AUTO_ALIGNMENT, pml.AUTO_ALIGNMENT, style = 0, direct = True)
  14.         dev.closePrint()
  15.     
  16.     return ok
  17.  
  18.  
  19. def AlignType1PML(dev, loadpaper_ui):
  20.     ok = loadpaper_ui()
  21.     if ok:
  22.         dev.setPML(pml.OID_AUTO_ALIGNMENT, pml.AUTO_ALIGNMENT)
  23.         dev.closePML()
  24.     
  25.     return ok
  26.  
  27.  
  28. def AlignType2(dev, loadpaper_ui, align_ui, bothpens_ui):
  29.     (state, a, b, c, d) = (0, 6, 6, 3, 3)
  30.     ok = False
  31.     while state != -1:
  32.         if state == 0:
  33.             state = 1
  34.             pens = dev.getStatusFromDeviceID()['agents']
  35.             pen_types = [ pens[x] for x in range(len(pens)) ]
  36.             if AGENT_TYPE_NONE in pen_types:
  37.                 log.error('Cannot perform alignment with 0 or 1 pen installed.')
  38.                 state = 100
  39.             
  40.         AGENT_TYPE_NONE in pen_types
  41.         if state == 1:
  42.             state = -1
  43.             ok = loadpaper_ui()
  44.             if ok:
  45.                 state = 2
  46.             
  47.         ok
  48.         if state == 2:
  49.             state = -1
  50.             alignType2Phase1(dev)
  51.             (ok, a) = align_ui('A', 'h', 'kc', 2, 11)
  52.             if ok:
  53.                 state = 3
  54.             
  55.         ok
  56.         if state == 3:
  57.             state = -1
  58.             (ok, b) = align_ui('B', 'v', 'kc', 2, 11)
  59.             if ok:
  60.                 state = 4
  61.             
  62.         ok
  63.         if state == 4:
  64.             state = -1
  65.             (ok, c) = align_ui('C', 'v', 'kc', 2, 5)
  66.             if ok:
  67.                 state = 5
  68.             
  69.         ok
  70.         if state == 5:
  71.             state = -1
  72.             (ok, d) = align_ui('D', 'v', 'c', 2, 5)
  73.             if ok:
  74.                 state = 6
  75.             
  76.         ok
  77.         if state == 6:
  78.             ok = loadpaper_ui()
  79.             state = -1
  80.             continue
  81.         None if ok else []
  82.         if state == 100:
  83.             ok = False
  84.             bothpens_ui()
  85.             state = -1
  86.             continue
  87.     return ok
  88.  
  89.  
  90. def AlignType3(dev, loadpaper_ui, align_ui, paperedge_ui, align_type):
  91.     (state, a, b, c, d, zca) = (0, 6, 6, 3, 3, 6)
  92.     ok = False
  93.     while state != -1:
  94.         if state == 0:
  95.             state = -1
  96.             ok = loadpaper_ui()
  97.             if ok:
  98.                 alignType3Phase1(dev)
  99.                 state = 1
  100.             
  101.         ok
  102.         if state == 1:
  103.             state = -1
  104.             (ok, a) = align_ui('A', 'h', 'kc', 2, 11)
  105.             if ok:
  106.                 state = 2
  107.             
  108.         ok
  109.         if state == 2:
  110.             state = -1
  111.             (ok, b) = align_ui('B', 'v', 'kc', 2, 11)
  112.             if ok:
  113.                 state = 3
  114.             
  115.         ok
  116.         if state == 3:
  117.             state = -1
  118.             (ok, c) = align_ui('C', 'v', 'k', 2, 11)
  119.             if ok:
  120.                 state = 4
  121.             
  122.         ok
  123.         if state == 4:
  124.             state = -1
  125.             (ok, d) = align_ui('D', 'v', 'kc', 2, 11)
  126.             if ok:
  127.                 state = 5
  128.             
  129.         ok
  130.         if state == 5:
  131.             state = -1
  132.             alignType3Phase2(dev, a, b, c, d)
  133.         None if align_type == 9 else ok
  134.         if state == 6:
  135.             state = -1
  136.             alignType3Phase3(dev)
  137.             (ok, zca) = paperedge_ui(13)
  138.             if ok:
  139.                 state = 7
  140.             
  141.         ok
  142.         if state == 7:
  143.             ok = loadpaper_ui()
  144.             if ok:
  145.                 alignType3Phase4(dev, zca)
  146.             
  147.             state = -1
  148.             continue
  149.     return ok
  150.  
  151.  
  152. def AlignxBow(dev, align_type, loadpaper_ui, align_ui, paperedge_ui, invalidpen_ui, coloradj_ui):
  153.     (state, statepos) = (0, 0)
  154.     user_cancel_states = [
  155.         1000,
  156.         -1]
  157.     (a, b, c, d, e, f, g) = (0, 0, 0, 0, 0, 0, 0)
  158.     error_states = [
  159.         -1]
  160.     ok = False
  161.     dev.pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID())
  162.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  163.         state = 100
  164.         states = [
  165.             -1]
  166.     elif dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  167.         state = 0
  168.         states = [
  169.             2,
  170.             200,
  171.             3,
  172.             -1]
  173.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  174.         state = 0
  175.         states = [
  176.             2,
  177.             200,
  178.             3,
  179.             -1]
  180.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  181.         state = 0
  182.         states = [
  183.             2,
  184.             300,
  185.             3,
  186.             -1]
  187.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  188.         state = 0
  189.         states = [
  190.             2,
  191.             400,
  192.             500,
  193.             600,
  194.             700,
  195.             3,
  196.             4,
  197.             -1]
  198.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  199.         state = 0
  200.         states = [
  201.             2,
  202.             400,
  203.             500,
  204.             600,
  205.             700,
  206.             800,
  207.             900,
  208.             3,
  209.             4,
  210.             -1]
  211.     
  212.     while state != -1:
  213.         if state == 0:
  214.             ok = loadpaper_ui()
  215.             if ok:
  216.                 if align_type == 4:
  217.                     alignType4Phase1(dev)
  218.                 elif align_type == 5:
  219.                     alignType5Phase1(dev)
  220.                 elif align_type == 7:
  221.                     alignType7Phase1(dev)
  222.                 else:
  223.                     statepos = 0
  224.                     states = error_states
  225.             else:
  226.                 statepos = 0
  227.                 states = user_cancel_states
  228.         elif state == 2:
  229.             (ok, a) = paperedge_ui(13)
  230.             if not ok:
  231.                 statepos = 0
  232.                 states = user_cancel_states
  233.             
  234.         elif state == 3:
  235.             if align_type == 4:
  236.                 alignType4Phase2(dev, a, b, c, d, e)
  237.             elif align_type == 5:
  238.                 alignType5Phase2(dev, a, b, c, d, e, f, g)
  239.             else:
  240.                 alignType7Phase2(dev, a, b, c, d, e, f, g)
  241.         elif state == 4:
  242.             ok = loadpaper_ui()
  243.             if ok:
  244.                 if align_type == 4:
  245.                     alignType4Phase3(dev)
  246.                 elif align_type == 5:
  247.                     alignType5Phase3(dev)
  248.                 else:
  249.                     alignType7Phase3(dev)
  250.             else:
  251.                 statepos = 0
  252.                 states = user_cancel_states
  253.         elif state == 100:
  254.             invalidpen_ui()
  255.             state = -1
  256.         elif state == 200:
  257.             (ok, b) = align_ui('B', 'v', 'k', 2, 11)
  258.             if not ok:
  259.                 statepos = 0
  260.                 states = user_cancel_states
  261.             
  262.         elif state == 300:
  263.             (ok, b) = align_ui('B', 'v', 'kc', 2, 11)
  264.             if not ok:
  265.                 statepos = 0
  266.                 states = user_cancel_states
  267.             
  268.         elif state == 400:
  269.             (ok, b) = align_ui('B', 'h', 'kc', 2, 17)
  270.             if not ok:
  271.                 statepos = 0
  272.                 states = user_cancel_states
  273.             
  274.         elif state == 500:
  275.             (ok, c) = align_ui('C', 'v', 'kc', 2, 17)
  276.             if not ok:
  277.                 statepos = 0
  278.                 states = user_cancel_states
  279.             
  280.         elif state == 600:
  281.             (ok, d) = align_ui('D', 'v', 'k', 2, 11)
  282.             if not ok:
  283.                 statepos = 0
  284.                 states = user_cancel_states
  285.             
  286.         elif state == 700:
  287.             (ok, e) = align_ui('E', 'v', 'kc', 2, 11)
  288.             if not ok:
  289.                 statepos = 0
  290.                 states = user_cancel_states
  291.             
  292.         elif state == 800:
  293.             (ok, f) = coloradj_ui('F', 21)
  294.             if not ok:
  295.                 statepos = 0
  296.                 states = user_cancel_states
  297.             
  298.         elif state == 900:
  299.             (ok, f) = coloradj_ui('G', 21)
  300.             if not ok:
  301.                 statepos = 0
  302.                 states = user_cancel_states
  303.             
  304.         elif state == 1000:
  305.             ok = False
  306.             log.warning('Alignment canceled at user request.')
  307.         
  308.         state = states[statepos]
  309.         statepos += 1
  310.     return ok
  311.  
  312.  
  313. def AlignType6(dev, ui1, ui2, loadpaper_ui):
  314.     state = 0
  315.     ok = False
  316.     while state != -1:
  317.         if state == 0:
  318.             state = 2
  319.             accept = ui1()
  320.             if not accept:
  321.                 state = 1
  322.             
  323.         accept
  324.         if state == 1:
  325.             state = -1
  326.             ok = loadpaper_ui()
  327.             if ok:
  328.                 alignType6Phase1(dev)
  329.                 state = 2
  330.             
  331.         ok
  332.         if state == 2:
  333.             ui2()
  334.             state = -1
  335.             continue
  336.     return ok
  337.  
  338.  
  339. def AlignType8(dev, loadpaper_ui, align_ui):
  340.     (state, a, b, c, d) = (0, 5, 5, 5, 5)
  341.     ok = False
  342.     while state != -1:
  343.         if state == 0:
  344.             state = -1
  345.             ok = loadpaper_ui()
  346.             if ok:
  347.                 num_inks = alignType8Phase1(dev)
  348.                 state = 1
  349.             
  350.         ok
  351.         if state == 1:
  352.             state = -1
  353.             (ok, a) = align_ui('A', 'v', 'k', 3, 9)
  354.             if ok:
  355.                 state = 2
  356.             
  357.         ok
  358.         if state == 2:
  359.             state = -1
  360.             (ok, b) = align_ui('B', 'v', 'c', 3, 9)
  361.             if ok:
  362.                 state = 3
  363.             
  364.         ok
  365.         if state == 3:
  366.             state = -1
  367.             (ok, c) = align_ui('C', 'v', 'kc', 3, 9)
  368.             if ok:
  369.                 state = 4
  370.             
  371.         ok
  372.         if state == 4:
  373.             state = -1
  374.             (ok, d) = align_ui('D', 'h', 'kc', 3, 9)
  375.             if ok:
  376.                 state = 5
  377.             
  378.         ok
  379.         if state == 5:
  380.             alignType8Phase2(dev, num_inks, a, b, c, d)
  381.             state = -1
  382.             continue
  383.     return ok
  384.  
  385.  
  386. def AlignType10(dev, loadpaper_ui, align_ui):
  387.     pattern = alignType10SetPattern(dev)
  388.     state = 0
  389.     while state != -1:
  390.         if state == 0:
  391.             state = -1
  392.             ok = loadpaper_ui()
  393.             if ok:
  394.                 alignType10Phase1(dev)
  395.                 state = 1
  396.             
  397.         ok
  398.         None if state == 1 else ok
  399.  
  400.  
  401. def alignType10SetPattern(dev):
  402.     pattern = None
  403.     pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID())
  404.     log.debug('Pen config=%d' % pen_config)
  405.     if pen_config == AGENT_CONFIG_BLACK_ONLY:
  406.         pattern = 1
  407.     elif pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  408.         pattern = 2
  409.     elif pen_config in (AGENT_CONFIG_COLOR_AND_PHOTO, AGENT_CONFIG_COLOR_AND_GREY):
  410.         pattern = 3
  411.     
  412.     log.debug('Pattern=%d' % pattern)
  413.     return pattern
  414.  
  415.  
  416. def alignType10Phase1(dev):
  417.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE)
  418.     dev.closePrint()
  419.  
  420.  
  421. def alignType10Phase2(dev, values, pattern):
  422.     i = 0
  423.     p = ''.join([
  424.         pcl.UEL,
  425.         '\n'])
  426.     for x in values:
  427.         i += 1
  428.         if not x:
  429.             break
  430.         
  431.         p = ''.join([
  432.             p,
  433.             pcl.ESC,
  434.             '*o5W\x1a',
  435.             chr(i),
  436.             '\x00',
  437.             chr(pattern),
  438.             chr(x),
  439.             '\n'])
  440.     
  441.     p = ''.join([
  442.         p,
  443.         pcl.UEL])
  444.     dev.printData(p)
  445.     dev.closePrint()
  446.  
  447.  
  448. def alignType10Phase3(dev):
  449.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE_VERIFICATION)
  450.     dev.closePrint()
  451.  
  452.  
  453. def align10and11and14Controls(pattern, align_type):
  454.     if align_type == ALIGN_TYPE_LIDIL_0_5_4:
  455.         if pattern == 1:
  456.             controls = {
  457.                 'A': (True, 23),
  458.                 'B': (True, 9),
  459.                 'C': (True, 9),
  460.                 'D': (False, 0),
  461.                 'E': (False, 0),
  462.                 'F': (False, 0),
  463.                 'G': (False, 0),
  464.                 'H': (False, 0) }
  465.         elif pattern == 2:
  466.             controls = {
  467.                 'A': (True, 17),
  468.                 'B': (True, 23),
  469.                 'C': (True, 23),
  470.                 'D': (True, 23),
  471.                 'E': (True, 9),
  472.                 'F': (True, 9),
  473.                 'G': (True, 9),
  474.                 'H': (True, 9) }
  475.         elif pattern == 3:
  476.             controls = {
  477.                 'A': (True, 9),
  478.                 'B': (True, 23),
  479.                 'C': (True, 23),
  480.                 'D': (True, 23),
  481.                 'E': (True, 9),
  482.                 'F': (True, 9),
  483.                 'G': (True, 9),
  484.                 'H': (True, 9) }
  485.         
  486.     elif align_type == ALIGN_TYPE_LIDIL_DJ_D1600:
  487.         if pattern == 1:
  488.             controls = {
  489.                 'A': (True, 23),
  490.                 'B': (True, 9) }
  491.         elif pattern == 2:
  492.             controls = {
  493.                 'A': (True, 23),
  494.                 'B': (True, 11),
  495.                 'C': (True, 23),
  496.                 'D': (True, 23),
  497.                 'E': (True, 11),
  498.                 'F': (True, 11),
  499.                 'G': (True, 11),
  500.                 'H': (True, 9),
  501.                 'I': (True, 9) }
  502.         elif pattern == 3:
  503.             controls = {
  504.                 'A': (True, 9),
  505.                 'B': (True, 23),
  506.                 'C': (True, 23),
  507.                 'D': (True, 23),
  508.                 'E': (True, 9),
  509.                 'F': (True, 9),
  510.                 'G': (True, 9),
  511.                 'H': (True, 9),
  512.                 'I': (True, 9) }
  513.         
  514.     elif pattern == 1:
  515.         controls = {
  516.             'A': (True, 23),
  517.             'B': (True, 9),
  518.             'C': (True, 9),
  519.             'D': (False, 0),
  520.             'E': (False, 0),
  521.             'F': (False, 0),
  522.             'G': (False, 0),
  523.             'H': (False, 0) }
  524.     elif pattern == 2:
  525.         controls = {
  526.             'A': (True, 23),
  527.             'B': (True, 17),
  528.             'C': (True, 23),
  529.             'D': (True, 23),
  530.             'E': (True, 9),
  531.             'F': (True, 9),
  532.             'G': (True, 9),
  533.             'H': (True, 9) }
  534.     elif pattern == 3:
  535.         controls = {
  536.             'A': (True, 23),
  537.             'B': (True, 9),
  538.             'C': (True, 23),
  539.             'D': (True, 23),
  540.             'E': (True, 9),
  541.             'F': (True, 9),
  542.             'G': (True, 9),
  543.             'H': (True, 9) }
  544.     
  545.     return controls
  546.  
  547.  
  548. def AlignType11(dev, loadpaper_ui, align_ui, invalidpen_ui):
  549.     pattern = alignType11SetPattern(dev)
  550.     if pattern is None:
  551.         invalidpen_ui()
  552.         return None
  553.     state = 0
  554.     while state != -1:
  555.         if state == 0:
  556.             state = -1
  557.             ok = loadpaper_ui()
  558.             if ok:
  559.                 alignType11Phase1(dev)
  560.                 state = 1
  561.             
  562.         ok
  563.         if state == 1:
  564.             values = align_ui(pattern, ALIGN_TYPE_LIDIL_0_5_4)
  565.             log.debug(values)
  566.             alignType11Phase2(dev, values, pattern, dev.pen_config)
  567.             state = 2
  568.             continue
  569.         pattern is None
  570.         if state == 2:
  571.             state = -1
  572.             ok = loadpaper_ui()
  573.             if ok:
  574.                 alignType11Phase3(dev)
  575.             
  576.         ok
  577.  
  578.  
  579. def alignType11SetPattern(dev):
  580.     pattern = None
  581.     dev.pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID())
  582.     log.debug('Pen config=%d' % dev.pen_config)
  583.     if dev.pen_config in (AGENT_CONFIG_BLACK_ONLY, AGENT_CONFIG_COLOR_ONLY):
  584.         pattern = 1
  585.     
  586.     if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  587.         pattern = 2
  588.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  589.         pattern = 3
  590.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  591.         return None
  592.     log.debug('Pattern=%d' % pattern)
  593.     return pattern
  594.  
  595.  
  596. def alignType11Phase1(dev):
  597.     dev.printData(ldl.buildResetPacket())
  598.     dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION))
  599.     dev.closePrint()
  600.  
  601.  
  602. def alignType11Phase2(dev, values, pattern, pen_config):
  603.     active_colors = 0
  604.     if pen_config == AGENT_CONFIG_BLACK_ONLY:
  605.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K
  606.         values = values[:3]
  607.     elif pen_config == AGENT_CONFIG_COLOR_ONLY:
  608.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR
  609.         values = values[:3]
  610.     elif pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  611.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K | ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR
  612.     elif pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  613.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR | ldl.COMMAND_SET_PEN_ALIGNMENT_3_PHOTO
  614.     
  615.     log.debug('Active colors=0x%x Values=%s' % (active_colors, values))
  616.     dev.printData(ldl.buildSetPenAlignment3Packet(active_colors, values))
  617.     dev.closePrint()
  618.  
  619.  
  620. def alignType11Phase3(dev):
  621.     dev.printData(ldl.buildResetPacket())
  622.     dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION_VERIFY))
  623.     dev.closePrint()
  624.  
  625.  
  626. def AlignType13(dev, loadpaper_ui, scanner_align_load_ui):
  627.     ok = loadpaper_ui()
  628.     if ok:
  629.         alignType13Phase1(dev)
  630.         ok = scanner_align_load_ui()
  631.     
  632.     return ok
  633.  
  634.  
  635. def alignType13Phase1(dev):
  636.     dev.setPML(pml.OID_AUTO_ALIGNMENT, pml.AUTO_ALIGNMENT)
  637.     dev.closePML()
  638.  
  639.  
  640. def AlignType14(dev, loadpaper_ui, align_ui, invalidpen_ui):
  641.     pattern = alignType14SetPattern(dev)
  642.     if pattern is None:
  643.         invalidpen_ui()
  644.         return None
  645.     state = 0
  646.     while state != -1:
  647.         if state == 0:
  648.             state = -1
  649.             ok = loadpaper_ui()
  650.             if ok:
  651.                 alignType14Phase1(dev)
  652.                 state = 1
  653.             
  654.         ok
  655.         if state == 1:
  656.             values = align_ui(pattern, ALIGN_TYPE_LIDIL_DJ_D1600)
  657.             log.debug(values)
  658.             alignType14Phase2(dev, values, pattern, dev.pen_config)
  659.             state = 2
  660.             continue
  661.         pattern is None
  662.         if state == 2:
  663.             state = -1
  664.             ok = loadpaper_ui()
  665.             if ok:
  666.                 alignType14Phase3(dev)
  667.             
  668.         ok
  669.  
  670.  
  671. def alignType14SetPattern(dev):
  672.     pattern = None
  673.     dev.pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID())
  674.     log.debug('Pen config=%d' % dev.pen_config)
  675.     if dev.pen_config in (AGENT_CONFIG_BLACK_ONLY, AGENT_CONFIG_COLOR_ONLY):
  676.         pattern = 1
  677.     
  678.     if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  679.         pattern = 2
  680.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  681.         pattern = 3
  682.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  683.         return None
  684.     log.debug('Pattern=%d' % pattern)
  685.     return pattern
  686.  
  687.  
  688. def alignType14Phase1(dev):
  689.     dev.printData(ldl.buildResetPacket())
  690.     dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION))
  691.     dev.closePrint()
  692.  
  693.  
  694. def alignType14Phase2(dev, values, pattern, pen_config):
  695.     active_colors = 0
  696.     if pen_config == AGENT_CONFIG_BLACK_ONLY:
  697.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K
  698.         values = values[:2]
  699.     elif pen_config == AGENT_CONFIG_COLOR_ONLY:
  700.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR
  701.         values = values[:2]
  702.     elif pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  703.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K | ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR
  704.     elif pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  705.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR | ldl.COMMAND_SET_PEN_ALIGNMENT_3_PHOTO
  706.     
  707.     log.debug('Active colors=0x%x Values=%s' % (active_colors, values))
  708.     dev.printData(ldl.buildSetPenAlignment3Packet(active_colors, values))
  709.     dev.closePrint()
  710.  
  711.  
  712. def alignType14Phase3(dev):
  713.     dev.printData(ldl.buildResetPacket())
  714.     dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION_VERIFY))
  715.     dev.closePrint()
  716.  
  717.  
  718. def alignType2Phase1(dev):
  719.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0)
  720.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0)
  721.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0)
  722.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0)
  723.     dev.closePrint()
  724.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align1_8xx.pcl.gz'))
  725.  
  726.  
  727. def alignType2Phase2(dev, a, b, c, d):
  728.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, (a - 6) * 12)
  729.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, (b - 6) * 12)
  730.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, (c - 3) * 12)
  731.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, (d - 3) * 12)
  732.     dev.writeEmbeddedPML(pml.OID_MARKING_AGENTS_INITIALIZED, 3)
  733.     dev.closePrint()
  734.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align2_8xx.pcl.gz'))
  735.  
  736.  
  737. def alignType3Phase1(dev):
  738.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0)
  739.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0)
  740.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0)
  741.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0)
  742.     dev.closePrint()
  743.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align1_9xx.pcl.gz'))
  744.  
  745.  
  746. def alignType3Phase2(dev, a, b, c, d):
  747.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, (a - 6) * 12)
  748.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, (6 - b) * 12)
  749.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, (6 - c) * 12)
  750.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, (6 - d) * 6)
  751.     dev.closePrint()
  752.  
  753.  
  754. def alignType3Phase3(dev):
  755.     dev.closePrint()
  756.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align3_9xx.pcl.gz'))
  757.  
  758.  
  759. def alignType3Phase4(dev, zca):
  760.     dev.writeEmbeddedPML(pml.OID_MARKING_AGENTS_INITIALIZED, 3)
  761.     dev.closePrint()
  762.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align2_9xx.pcl.gz'))
  763.  
  764.  
  765. def alignType4Phase1(dev):
  766.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_RESUME_NORMAL_OPERATION))
  767.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  768.         return None
  769.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  770.         ldl_file = 'cbbcal.ldl.gz'
  771.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  772.         ldl_file = 'cbccal.ldl.gz'
  773.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  774.         ldl_file = 'cb2pcal.ldl.gz'
  775.     
  776.     dev.printData(ldl.buildSetPrinterAlignmentPacket(0, 0, 0, 0))
  777.     dev.closePrint()
  778.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', ldl_file))
  779.  
  780.  
  781. def alignType4Phase2(dev, a, b, c, d, e):
  782.     log.debug('A=%d, B=%d, C=%d, D=%d, E=%d' % (a, b, c, d, e))
  783.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  784.         return None
  785.     zca = (7 - a) * -48
  786.     dev.printData(ldl.buildZCAPacket(zca))
  787.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  788.         k_bidi = (6 - b) * 2
  789.         dev.printData(ldl.buildSetPrinterAlignmentPacket(k_bidi, 0, 0, 0))
  790.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  791.         cmy_bidi = (6 - b) * 2
  792.         dev.printData(ldl.buildSetPrinterAlignmentPacket(0, 0, 0, cmy_bidi))
  793.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  794.         vert = (9 - b) * 2
  795.         hort = (9 - c) * -2
  796.         k_bidi = (6 - d) * 2
  797.         cmy_bidi = (6 - e) * 2
  798.         dev.printData(ldl.buildSetPrinterAlignmentPacket(k_bidi, hort, vert, cmy_bidi))
  799.     
  800.     dev.printData(ldl.buildSetPensAlignedPacket())
  801.     dev.closePrint()
  802.  
  803.  
  804. def alignType4Phase3(dev):
  805.     if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  806.         dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', 'cb2pcal_done.ldl.gz'))
  807.     
  808.  
  809.  
  810. def alignType5Phase1(dev):
  811.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_RESUME_NORMAL_OPERATION))
  812.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  813.         return None
  814.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  815.         ldl_file = 'cbbcal.ldl.gz'
  816.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  817.         ldl_file = 'cbpcal.ldl.gz'
  818.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  819.         ldl_file = 'cbccal.ldl.gz'
  820.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  821.         ldl_file = 'cb2pcal.ldl.gz'
  822.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  823.         ldl_file = 'cbcpcal.ldl.gz'
  824.     
  825.     dev.printData(ldl.buildZCAPacket(0))
  826.     dev.printData(ldl.buildColorHortPacket(0))
  827.     dev.printData(ldl.buildColorVertPacket(0))
  828.     dev.printData(ldl.buildBlackVertPacket(0))
  829.     dev.printData(ldl.buildBlackHortPacket(0))
  830.     dev.printData(ldl.buildBlackBidiPacket(0))
  831.     dev.printData(ldl.buildColorBidiPacket(0))
  832.     dev.printData(ldl.buildPhotoHuePacket(0))
  833.     dev.printData(ldl.buildColorHuePacket(0))
  834.     dev.closePrint()
  835.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', ldl_file))
  836.  
  837.  
  838. def alignType5Phase2(dev, a, b, c, d, e, f, g):
  839.     log.debug('A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%d' % (a, b, c, d, e, f, g))
  840.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  841.         return None
  842.     zca = (7 - a) * -48
  843.     dev.printData(ldl.buildZCAPacket(zca))
  844.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  845.         k_bidi = (6 - b) * 2
  846.         dev.printData(ldl.buildBlackBidiPacket(k_bidi))
  847.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  848.         kcm_bidi = (6 - b) * 2
  849.         dev.printData(ldl.buildPhotoBidiPacket(kcm_bidi))
  850.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  851.         cmy_bidi = (6 - b) * 2
  852.         dev.printData(ldl.buildColorBidiPacket(cmy_bidi))
  853.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  854.         vert = (9 - b) * 2
  855.         hort = (9 - c) * -2
  856.         k_bidi = (6 - d) * 2
  857.         cmy_bidi = (6 - e) * 2
  858.         dev.printData(ldl.buildColorHortPacket(0))
  859.         dev.printData(ldl.buildColorVertPacket(0))
  860.         dev.printData(ldl.buildBlackVertPacket(vert))
  861.         dev.printData(ldl.buildBlackHortPacket(hort))
  862.         dev.printData(ldl.buildBlackBidiPacket(k_bidi))
  863.         dev.printData(ldl.buildColorBidiPacket(cmy_bidi))
  864.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  865.         vert = (9 - b) * 2
  866.         hort = (9 - c) * -2
  867.         cmy_bidi = (6 - d) * 2
  868.         kcm_bidi = (6 - e) * 2
  869.         photo_adj = colorcal.PHOTO_ALIGN_TABLE[f][g]
  870.         color_adj = colorcal.COLOR_ALIGN_TABLE[f][g]
  871.         dev.printData(ldl.buildPhotoHortPacket(hort))
  872.         dev.printData(ldl.buildPhotoVertPacket(vert))
  873.         dev.printData(ldl.buildColorHortPacket(0))
  874.         dev.printData(ldl.buildColorVertPacket(0))
  875.         dev.printData(ldl.buildPhotoBidiPacket(kcm_bidi))
  876.         dev.printData(ldl.buildColorBidiPacket(cmy_bidi))
  877.         dev.printData(ldl.buildPhotoHuePacket(photo_adj))
  878.         dev.printData(ldl.buildColorHuePacket(color_adj))
  879.     
  880.     dev.printData(ldl.buildSetPensAlignedPacket())
  881.     dev.closePrint()
  882.  
  883.  
  884. def alignType5Phase3(dev):
  885.     dev.closePrint()
  886.     if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  887.         dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', 'cb2pcal_done.ldl.gz'))
  888.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  889.         dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', 'cbccal_done.ldl.gz'))
  890.     
  891.  
  892.  
  893. def alignType6Phase1(dev):
  894.     dev.printData(ldl.buildPrintInternalPagePacket())
  895.     dev.closePrint()
  896.  
  897.  
  898. def alignType7Phase1(dev):
  899.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0)
  900.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0)
  901.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0)
  902.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0)
  903.     dev.writeEmbeddedPML(pml.OID_AGENT3_VERTICAL_ALIGNMENT, 0)
  904.     dev.writeEmbeddedPML(pml.OID_AGENT3_HORIZONTAL_ALIGNMENT, 0)
  905.     dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, 0)
  906.     dev.writeEmbeddedPML(pml.OID_ZCA, 0)
  907.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  908.         return None
  909.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  910.         pcl_file = 'crbcal.pcl.gz'
  911.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  912.         pcl_file = 'crpcal.pcl.gz'
  913.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  914.         pcl_file = 'crccal.pcl.gz'
  915.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  916.         pcl_file = 'crcbcal.pcl.gz'
  917.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  918.         pcl_file = 'crcpcal.pcl.gz'
  919.     
  920.     dev.closePrint()
  921.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', pcl_file))
  922.  
  923.  
  924. def alignType7Phase2(dev, a, b, c, d, e, f, g):
  925.     log.debug('A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%d' % (a, b, c, d, e, f, g))
  926.     zca = (7 - a) * -12
  927.     dev.writeEmbeddedPML(pml.OID_ZCA, zca)
  928.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  929.         k_bidi = (6 - b) * 6
  930.         dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, k_bidi)
  931.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  932.         kcm_bidi = (6 - b) * 6
  933.         dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, kcm_bidi)
  934.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  935.         cmy_bidi = (6 - b) * 6
  936.         dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi)
  937.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  938.         vert = (9 - b) * 6
  939.         hort = (9 - c) * -6
  940.         k_bidi = (6 - d) * 6
  941.         cmy_bidi = (6 - e) * 6
  942.         dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, k_bidi)
  943.         dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi)
  944.         dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, hort)
  945.         dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, vert)
  946.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  947.         vert = (9 - b) * 6
  948.         hort = (9 - c) * -6
  949.         cmy_bidi = (6 - d) * 6
  950.         kcm_bidi = (6 - e) * 6
  951.         photo_adj = colorcal.PHOTO_ALIGN_TABLE[f][g]
  952.         color_adj = colorcal.COLOR_ALIGN_TABLE[f][g]
  953.         x = (color_adj << 8) + photo_adj
  954.         dev.writeEmbeddedPML(pml.OID_COLOR_CALIBRATION_SELECTION, x)
  955.         dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi)
  956.         dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, kcm_bidi)
  957.         dev.writeEmbeddedPML(pml.OID_AGENT3_HORIZONTAL_ALIGNMENT, hort)
  958.         dev.writeEmbeddedPML(pml.OID_AGENT3_VERTICAL_ALIGNMENT, vert)
  959.     
  960.     dev.closePrint()
  961.  
  962.  
  963. def alignType7Phase3(dev):
  964.     dev.closePrint()
  965.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'crcaldone.pcl.gz'))
  966.  
  967.  
  968. def alignType8Phase1(dev):
  969.     pens = dev.getStatusFromDeviceID()['agents']
  970.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  971.     dev.closePrint()
  972.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', f))
  973.     return num_inks
  974.  
  975.  
  976. def alignType8Phase2(dev, num_inks, a, b, c, d):
  977.     align_values1 = {
  978.         1: '\x00\x00\x18',
  979.         2: '\x00\x00\x12',
  980.         3: '\x00\x00\x0c',
  981.         4: '\x00\x00\x06',
  982.         5: '\x00\x00\x00',
  983.         6: '\x01\x00\x06',
  984.         7: '\x01\x00\x0c',
  985.         8: '\x01\x00\x12',
  986.         9: '\x01\x00\x18' }
  987.     align_values2 = {
  988.         1: '\x00\x00\x12',
  989.         2: '\x00\x00\x0c',
  990.         3: '\x00\x00\x06',
  991.         4: '\x00\x00\x00',
  992.         5: '\x01\x00\x06',
  993.         6: '\x01\x00\x0c',
  994.         7: '\x01\x00\x12',
  995.         8: '\x01\x00\x18',
  996.         9: '\x01\x00\x1e' }
  997.     align_values3 = {
  998.         1: '\x00\x00$',
  999.         2: '\x00\x00\x18',
  1000.         3: '\x00\x00\x12',
  1001.         4: '\x00\x00\x06',
  1002.         5: '\x00\x00\x00',
  1003.         6: '\x01\x00\x06',
  1004.         7: '\x01\x00\x12',
  1005.         8: '\x01\x00\x18',
  1006.         9: '\x01\x00$' }
  1007.     if num_inks == 4:
  1008.         s = ''.join([
  1009.             pcl.UEL,
  1010.             '@PJL ENTER LANGUAGE=PCL3GUI\n',
  1011.             pcl.RESET,
  1012.             pcl.ESC,
  1013.             '*o5W\x1a\x01',
  1014.             align_values1[a],
  1015.             pcl.ESC,
  1016.             '*o5W\x1a\x02',
  1017.             align_values2[a],
  1018.             pcl.ESC,
  1019.             '*o5W\x1a\x03',
  1020.             align_values1[b],
  1021.             pcl.ESC,
  1022.             '*o5W\x1a\x04',
  1023.             align_values1[b],
  1024.             pcl.ESC,
  1025.             '*o5W\x1a\x08',
  1026.             align_values1[c],
  1027.             pcl.ESC,
  1028.             '*o5W\x1a\x07',
  1029.             align_values1[d],
  1030.             pcl.RESET,
  1031.             pcl.UEL])
  1032.     else:
  1033.         s = ''.join([
  1034.             pcl.UEL,
  1035.             '@PJL ENTER LANGUAGE=PCL3GUI\n',
  1036.             pcl.RESET,
  1037.             pcl.ESC,
  1038.             '*o5W\x1a\x05',
  1039.             align_values1[a],
  1040.             pcl.ESC,
  1041.             '*o5W\x1a\x06',
  1042.             align_values3[a],
  1043.             pcl.ESC,
  1044.             '*o5W\x1a\x03',
  1045.             align_values1[b],
  1046.             pcl.ESC,
  1047.             '*o5W\x1a\x04',
  1048.             align_values1[b],
  1049.             pcl.ESC,
  1050.             '*o5W\x1a\n',
  1051.             align_values1[c],
  1052.             pcl.ESC,
  1053.             '*o5W\x1a\t',
  1054.             align_values1[d],
  1055.             pcl.RESET,
  1056.             pcl.UEL])
  1057.     dev.printData(s)
  1058.     dev.closePrint()
  1059.  
  1060.  
  1061. def AlignType12(dev, loadpaper_ui):
  1062.     if loadpaper_ui():
  1063.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE)
  1064.         dev.closePML()
  1065.     
  1066.  
  1067.  
  1068. def cleaning(dev, clean_type, level1, level2, level3, loadpaper_ui, dlg1, dlg2, dlg3, wait_ui):
  1069.     state = 0
  1070.     while state != -1:
  1071.         if state == 0:
  1072.             state = 1
  1073.             if clean_type == CLEAN_TYPE_PCL_WITH_PRINTOUT:
  1074.                 ok = loadpaper_ui()
  1075.                 if not ok:
  1076.                     state = -1
  1077.                 
  1078.             
  1079.         clean_type == CLEAN_TYPE_PCL_WITH_PRINTOUT
  1080.         None if state == 1 else ok
  1081.         None if state == 3 else ok
  1082.         None if state == 5 else ok
  1083.         None if state == 7 else ok
  1084.         None if state == 9 else ok
  1085.         if state == 11:
  1086.             state = 12
  1087.             print_clean_test_page(dev)
  1088.             continue
  1089.         if state == 12:
  1090.             state = -1
  1091.             dlg3()
  1092.             continue
  1093.     return ok
  1094.  
  1095.  
  1096. def print_clean_test_page(dev):
  1097.     dev.closePrint()
  1098.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ps', 'clean_page.pdf.gz'), raw = False)
  1099.  
  1100.  
  1101. def cleanType1(dev):
  1102.     dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_CLEAN)
  1103.     dev.closePrint()
  1104.  
  1105.  
  1106. def primeType1(dev):
  1107.     dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_PRIME)
  1108.     dev.closePrint()
  1109.  
  1110.  
  1111. def wipeAndSpitType1(dev):
  1112.     dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_WIPE_AND_SPIT)
  1113.     dev.closePrint()
  1114.  
  1115.  
  1116. def cleanType2(dev):
  1117.     dev.printData(ldl.buildResetPacket())
  1118.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, ldl.COMMAND_HANDLE_PEN, ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL1))
  1119.     dev.closePrint()
  1120.  
  1121.  
  1122. def primeType2(dev):
  1123.     dev.printData(ldl.buildResetPacket())
  1124.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, ldl.COMMAND_HANDLE_PEN, ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL2))
  1125.     dev.closePrint()
  1126.  
  1127.  
  1128. def wipeAndSpitType2(dev):
  1129.     dev.printData(ldl.buildResetPacket())
  1130.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, ldl.COMMAND_HANDLE_PEN, ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL3))
  1131.     dev.closePrint()
  1132.  
  1133.  
  1134. def colorCalType1(dev, loadpaper_ui, colorcal_ui, photopenreq_ui):
  1135.     (value, state) = (4, 0)
  1136.     ok = False
  1137.     while state != -1:
  1138.         if state == 0:
  1139.             if colorCalType1PenCheck(dev):
  1140.                 state = 1
  1141.             else:
  1142.                 state = 100
  1143.         colorCalType1PenCheck(dev)
  1144.         if state == 1:
  1145.             state = -1
  1146.             ok = loadpaper_ui()
  1147.             if ok:
  1148.                 colorCalType1Phase1(dev)
  1149.                 state = 2
  1150.             
  1151.         ok
  1152.         if state == 2:
  1153.             state = -1
  1154.             (ok, value) = colorcal_ui()
  1155.             if ok:
  1156.                 state = 3
  1157.             
  1158.         ok
  1159.         if state == 3:
  1160.             colorCalType1Phase2(dev, value)
  1161.             state = -1
  1162.             continue
  1163.         if state == 100:
  1164.             ok = False
  1165.             photopenreq_ui()
  1166.             state = -1
  1167.             continue
  1168.     return ok
  1169.  
  1170.  
  1171. def colorCalType1PenCheck(dev):
  1172.     pens = dev.getStatusFromDeviceID()['agents']
  1173.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  1174.     if AGENT_TYPE_KCM in pen_types:
  1175.         return True
  1176.     log.error('Cannot perform color calibration with no photo pen installed.')
  1177.     return False
  1178.  
  1179.  
  1180. def colorCalType1Phase1(dev):
  1181.     dev.closePrint()
  1182.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'colorcal1_450.pcl.gz'))
  1183.  
  1184.  
  1185. def colorCalType1Phase2(dev, value):
  1186.     color_cal = {
  1187.         1: ('\x0f<', '\x17\x0c'),
  1188.         2: ('\x10\xcc', '\x15|'),
  1189.         3: ('\x12\\', '\x13\xec'),
  1190.         4: ('\x13\xec', '\x12\\'),
  1191.         5: ('\x15|', '\x10\xcc'),
  1192.         6: ('\x17\x0c', '\x0f<'),
  1193.         7: ('\x18\x9c', '\r\xac') }
  1194.     s = ''.join([
  1195.         pcl.UEL,
  1196.         '@PJL ENTER LANGUAGE=PCL3GUI\n',
  1197.         pcl.RESET,
  1198.         pcl.ESC,
  1199.         '*o5W\x1a\x0c\x00',
  1200.         color_cal[value][0],
  1201.         pcl.ESC,
  1202.         '*o5W\x1a\x0b\x00',
  1203.         color_cal[value][1],
  1204.         pcl.RESET,
  1205.         pcl.UEL])
  1206.     dev.printData(s)
  1207.     dev.closePrint()
  1208.  
  1209.  
  1210. def colorCalType2(dev, loadpaper_ui, colorcal_ui, photopenreq_ui):
  1211.     (value, state) = (4, 0)
  1212.     ok = True
  1213.     while state != -1:
  1214.         if state == 0:
  1215.             if colorCalType2PenCheck(dev):
  1216.                 state = 1
  1217.             else:
  1218.                 state = 100
  1219.         colorCalType2PenCheck(dev)
  1220.         if state == 1:
  1221.             state = -1
  1222.             ok = loadpaper_ui()
  1223.             if ok:
  1224.                 colorCalType2Phase1(dev)
  1225.                 state = 2
  1226.             
  1227.         ok
  1228.         if state == 2:
  1229.             state = -1
  1230.             (ok, value) = colorcal_ui()
  1231.             if ok:
  1232.                 state = 3
  1233.             
  1234.         ok
  1235.         if state == 3:
  1236.             colorCalType2Phase2(dev, value)
  1237.             state = -1
  1238.             continue
  1239.         if state == 100:
  1240.             photopenreq_ui()
  1241.             ok = False
  1242.             state = -1
  1243.             continue
  1244.     return ok
  1245.  
  1246.  
  1247. def colorCalType2PenCheck(dev):
  1248.     pens = dev.getStatusFromDeviceID()['agents']
  1249.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  1250.     if AGENT_TYPE_NONE not in pen_types:
  1251.         return True
  1252.     log.error('Cannot perform color calibration with pens missing.')
  1253.     return False
  1254.  
  1255.  
  1256. def colorCalType2Phase1(dev):
  1257.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1258.     dev.closePrint()
  1259.  
  1260.  
  1261. def colorCalType2Phase2(dev, value):
  1262.     c = colorcal.COLOR_CAL_TABLE
  1263.     p = ''.join([
  1264.         '\x1b&b19WPML \x04\x00\x06\x01\x04\x01\x05\x01\t\x08\x04',
  1265.         chr(c[value * 4] + 100),
  1266.         chr(c[value * 4 + 1] + 100),
  1267.         chr(c[value * 4 + 2] + 100),
  1268.         chr(c[value * 4 + 3] + 100),
  1269.         '\x1b%-12345X'])
  1270.     dev.printData(p)
  1271.     dev.closePrint()
  1272.  
  1273.  
  1274. def colorCalType3(dev, loadpaper_ui, colorcal_ui, photopenreq_ui):
  1275.     (value, state) = (4, 0)
  1276.     ok = True
  1277.     while state != -1:
  1278.         if state == 0:
  1279.             if colorCalType3PenCheck(dev):
  1280.                 state = 1
  1281.             else:
  1282.                 state = 100
  1283.         colorCalType3PenCheck(dev)
  1284.         if state == 1:
  1285.             state = -1
  1286.             ok = loadpaper_ui()
  1287.             if ok:
  1288.                 colorCalType3Phase1(dev)
  1289.                 state = 2
  1290.             
  1291.         ok
  1292.         if state == 2:
  1293.             state = -1
  1294.             (ok, valueA) = colorcal_ui('A', 21)
  1295.             if ok:
  1296.                 state = 3
  1297.             
  1298.         ok
  1299.         if state == 3:
  1300.             state = -1
  1301.             (ok, valueB) = colorcal_ui('B', 21)
  1302.             if ok:
  1303.                 state = 4
  1304.             
  1305.         ok
  1306.         if state == 4:
  1307.             colorCalType3Phase2(dev, valueA, valueB)
  1308.             state = -1
  1309.             continue
  1310.         if state == 100:
  1311.             photopenreq_ui()
  1312.             ok = False
  1313.             state = -1
  1314.             continue
  1315.     return ok
  1316.  
  1317.  
  1318. def colorCalType3PenCheck(dev):
  1319.     pens = dev.getStatusFromDeviceID()['agents']
  1320.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  1321.     if AGENT_TYPE_KCM in pen_types or AGENT_TYPE_BLUE in pen_types:
  1322.         return True
  1323.     log.error('Cannot perform color calibration with no photo (or photo blue) pen installed.')
  1324.     return False
  1325.  
  1326.  
  1327. def colorCalType3Phase1(dev):
  1328.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1329.     dev.closePrint()
  1330.  
  1331.  
  1332. def colorCalType3Phase2(dev, A, B):
  1333.     photo_adj = colorcal.PHOTO_ALIGN_TABLE[A - 1][B - 1]
  1334.     color_adj = colorcal.COLOR_ALIGN_TABLE[A - 1][B - 1]
  1335.     adj_value = (color_adj << 0x8L) + photo_adj
  1336.     dev.writeEmbeddedPML(pml.OID_COLOR_CALIBRATION_SELECTION, adj_value)
  1337.     dev.closePrint()
  1338.  
  1339.  
  1340. def colorCalType4(dev, loadpaper_ui, colorcal_ui, wait_ui):
  1341.     state = 0
  1342.     ok = True
  1343.     while state != -1:
  1344.         if state == 0:
  1345.             state = -1
  1346.             ok = loadpaper_ui()
  1347.             if ok:
  1348.                 colorCalType4Phase1(dev)
  1349.                 state = 2
  1350.             
  1351.         ok
  1352.         if state == 2:
  1353.             state = -1
  1354.             (ok, values) = colorcal_ui()
  1355.             if ok:
  1356.                 state = 3
  1357.             
  1358.         ok
  1359.         None if state == 3 else ok
  1360.     return ok
  1361.  
  1362.  
  1363. def colorCalType4Phase1(dev):
  1364.     dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1365.     dev.closePML()
  1366.  
  1367.  
  1368. def colorCalType4AdjValue(value):
  1369.     if value >= 100:
  1370.         return 200
  1371.     return value + 100
  1372.  
  1373.  
  1374. def colorCalType4Phase2(dev, values):
  1375.     if -1 in values:
  1376.         (Cadj, Madj, Yadj, cadj, madj, kadj) = (244, 244, 244, 244, 244, 244)
  1377.     else:
  1378.         (sel1, sel2, sel3, sel4) = values
  1379.         tmp1 = colorcal.TYPE_4_C_TABLE[sel1][sel2]
  1380.         tmp2 = colorcal.TYPE_4_LC_TABLE[sel3][sel4]
  1381.         Cadj = colorCalType4AdjValue(tmp1)
  1382.         cadj = colorCalType4AdjValue(tmp1 + tmp2)
  1383.         tmp1 = colorcal.TYPE_4_M_TABLE[sel1][sel2]
  1384.         tmp2 = colorcal.TYPE_4_LM_TABLE[sel3][sel4]
  1385.         Madj = colorCalType4AdjValue(tmp1)
  1386.         madj = colorCalType4AdjValue(tmp1 + tmp2)
  1387.         Yadj = colorCalType4AdjValue(colorcal.TYPE_4_Y_TABLE[sel1][sel2])
  1388.         kadj = colorCalType4AdjValue(0)
  1389.     log.debug('C=%d, M=%d, Y=%d, c=%d, m=%d, k=%d\n' % (Cadj, Madj, Yadj, cadj, madj, kadj))
  1390.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_1, kadj)
  1391.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_2, Cadj)
  1392.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_3, Madj)
  1393.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_4, Yadj)
  1394.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_5, cadj)
  1395.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_6, madj)
  1396.     dev.closePML()
  1397.  
  1398.  
  1399. def colorCalType4Phase3(dev):
  1400.     dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_PALETTE_CMYK_PAGE)
  1401.     dev.closePML()
  1402.  
  1403.  
  1404. def colorCalType5(dev, loadpaper_ui):
  1405.     if loadpaper_ui():
  1406.         dev.printData('\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 20;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X')
  1407.         dev.closePrint()
  1408.     
  1409.  
  1410.  
  1411. def colorCalType6(dev, loadpaper_ui):
  1412.     if loadpaper_ui():
  1413.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1414.         dev.closePML()
  1415.     
  1416.  
  1417.  
  1418. def colorCalType7(dev, loadpaper_ui):
  1419.     if loadpaper_ui():
  1420.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_AUTOMATIC_COLOR_CALIBRATION)
  1421.         dev.closePML()
  1422.     
  1423.  
  1424.  
  1425. def linefeedCalType1(dev, loadpaper_ui):
  1426.     if loadpaper_ui():
  1427.         dev.printData('\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 3;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X')
  1428.         dev.closePrint()
  1429.     
  1430.  
  1431.  
  1432. def linefeedCalType2(dev, loadpaper_ui):
  1433.     if loadpaper_ui():
  1434.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_LINEFEED_CALIBRATION)
  1435.         dev.closePML()
  1436.     
  1437.  
  1438.  
  1439. def printQualityDiagType1(dev, loadpaper_ui):
  1440.     if loadpaper_ui():
  1441.         dev.printData('\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 14;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X')
  1442.         dev.closePrint()
  1443.     
  1444.  
  1445.  
  1446. def printQualityDiagType2(dev, loadpaper_ui):
  1447.     if loadpaper_ui():
  1448.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_PRINT_QUALITY_DIAGNOSTIC)
  1449.         dev.closePML()
  1450.     
  1451.  
  1452.